const router = require('koa-router')()
const UserController = require('../controller/user')
const jwt = require('jsonwebtoken')
const { exec } = require('../db/index')


// 登陆权限验证：就是看你访问这个接口的时候，登陆了没有
// 前端请求接口的时候带token没有  还要验证token中的信息对不对。如果对。就能验证成功
// token是从authorzation这个字段带过来的 header ctx.request.header
const auth = async (ctx, next) => {
  const { authorization = '' } = ctx.request.header
  try {
    // 只要这个数据能被jwt验证出来，就说明当前用户已经登陆。
    let data = jwt.verify(authorization, 'key')
    // 将获取到的用户的数据放在一个命名空间上 （为了身份权限使用）
    console.log(data, 'user')
    ctx.state.user = data;
    await next()
  } catch (e) {
    console.log(e, 'e')
    ctx.body = { status: '401' }
  }
}

// 身份权限验证：
const checkOwner = async (ctx, next) => {
  if (ctx.state.user.userid === 0) {
    await next()
  } else {
    ctx.body = { state: '402', msg: '用户权限不够' }
  }
}

router.prefix('/api')
router.post('/login', UserController.login)
router.post('/register', UserController.register)
router.get('/delete', auth, checkOwner, UserController.delete)
router.get('/page', UserController.page)
router.get('/search', UserController.search)

router.delete('/alldelete', async (ctx) => {
  // console.log(ctx.request.body.id)
  // let arr = ctx.request.body.id.split(',')

  // let str = arr.map((item, index) => {
  //   return `${item}`;
  // }).join(',')
  // console.log(str, 'str')
  // console.log(str.replace(/\,\)/, ')'), 'str')
  let sql = `delete from blogs where id in (${ctx.request.body.id})`
  console.log(sql, 'sql')
  let data = await exec(sql)


  ctx.body = {
    data
  }
})

module.exports = router
